home *** CD-ROM | disk | FTP | other *** search
/ Deutsche Edition 1 / Deutsche Edition 1.iso / amok / 061-070 / amok65 / makecpicscreen / makecpic.mod < prev    next >
Text File  |  1993-11-04  |  8KB  |  216 lines

  1. (* ------------------------------------------------------------------------
  2.   :Program.       MakeCPic.mod
  3.   :Author.        Steffen Köhler
  4.   :Address.       Grüne Str.1 2880 Brake
  5.   :Phone.         04401/70164
  6.   :Copyright.     FreeWare
  7.   :Language.      Modula-2
  8.   :Translator.    M2Amiga 3.32d
  9.   :History.       v1.0 Steffen Köhler    Dez-90
  10.   :Imports.       IconSupport ([fbs] AMOK#5)
  11.   :Contents.      Generiert fertigen Modul- Sourcetext aus CPic- Files
  12.   :Contents.      zum Einbinden von CPics (gepackten IFF- Bildern) als
  13.   :Contents.      fertigen Screen direkt in den Programmtext
  14.   :Contents.      (Öffen des Screens mittels MakeCPicScreen)
  15. ------------------------------------------------------------------------ *)
  16. MODULE MakeCPic;
  17.  
  18.    FROM FileSystem  IMPORT Lookup,Response,Close,ReadChar,WriteChar,File;
  19.    FROM Arguments   IMPORT GetArg,NumArgs;
  20.    FROM Terminal    IMPORT WriteString,WriteLn;
  21.    FROM Workbench   IMPORT WBObjectType;
  22.    FROM Strings     IMPORT Length,Insert;
  23.    FROM Conversions IMPORT ValToStr;
  24.    FROM SYSTEM      IMPORT ADR;
  25.    FROM Intuition   IMPORT Image;
  26.    FROM IconSupport IMPORT CreateIcon;
  27.    FROM Arts        IMPORT wbStarted;
  28.    FROM AmokIcon    IMPORT LImage,HImage;
  29.  
  30.    VAR
  31.       Zeichen,
  32.       a,
  33.       b          : CHAR;
  34.       String     : ARRAY [0..6] OF CHAR;
  35.  
  36.       Argumente  : INTEGER;
  37.       Input,
  38.       Output     : File;
  39.       Inputname,
  40.       Outputname,
  41.       Output1,
  42.       Output2     : ARRAY [0..78] OF CHAR;
  43.       Buffer1,
  44.       Buffer2    : CARDINAL;
  45.       Laenge,
  46.       Counter    : INTEGER;
  47.       Error      : BOOLEAN;
  48.  
  49.  
  50. PROCEDURE WriteDateiString(VAR Datei:File; String: ARRAY OF CHAR);
  51.  
  52. VAR
  53.    Counter: INTEGER;
  54.  
  55. BEGIN
  56.    Counter:=0;
  57.    WHILE Counter<=Length(String)-1 DO
  58.       WriteChar(Datei,String[Counter]);
  59.       INC(Counter);
  60.     END;
  61. END WriteDateiString;
  62.  
  63.  
  64. BEGIN
  65.    Buffer1:=20000;
  66.    Buffer2:=20000;
  67.    Argumente:=NumArgs();
  68.    IF Argumente=1 THEN
  69.       GetArg(1,Inputname,Laenge);
  70.       Output1:=Inputname;
  71.       Output2:=Inputname;
  72.       Insert(Output1,Length(Output1),".mod");
  73.       Insert(Output2,Length(Output2),".def");
  74.    END;
  75.    IF (Argumente=2) AND (NOT wbStarted) THEN
  76.       GetArg(1,Inputname,Laenge);
  77.       GetArg(2,Outputname,Laenge);
  78.       Output1:=Outputname;
  79.       Output2:=Outputname;
  80.       Insert(Output1,Length(Output1),".mod");
  81.       Insert(Output2,Length(Output2),".def");
  82.    END;
  83.    IF (Argumente=1) OR ((Argumente=2)AND (NOT wbStarted)) THEN
  84.       Lookup(Input,Inputname,Buffer1,FALSE);
  85.       IF Input.res=done THEN
  86.          WriteString(Inputname);
  87.          WriteString(" : Konvertierung beginnt");
  88.          Lookup(Output,Output1,Buffer2,TRUE);
  89.          IF Output.res=done THEN
  90.             WriteDateiString(Output,"IMPLEMENTATION MODULE ");
  91.             WriteDateiString(Output,Inputname);
  92.             WriteDateiString(Output,";");
  93.             WriteDateiString(Output,CHR(10));
  94.             WriteDateiString(Output,CHR(10));
  95.             WriteDateiString(Output,"(*                     Generated with MakeCPic V1.0");
  96.             WriteDateiString(Output,CHR(10));
  97.             WriteDateiString(Output,"     © by Steffen Köhler -- Grüne Str. 1  2880 Brake TEL 04401/70164 *)");
  98.             WriteDateiString(Output,CHR(10));
  99.             WriteDateiString(Output,"FROM SYSTEM IMPORT INLINE;");
  100.             WriteDateiString(Output,CHR(10));
  101.             WriteDateiString(Output,CHR(10));
  102.             WriteDateiString(Output,"PROCEDURE Bild;");
  103.             WriteDateiString(Output,CHR(10));
  104.             WriteDateiString(Output,"(* $E- *)");
  105.             WriteDateiString(Output,CHR(10));
  106.             WriteDateiString(Output,CHR(10));
  107.             WriteDateiString(Output,"BEGIN");
  108.             WriteDateiString(Output,CHR(10));
  109.             WriteDateiString(Output,"INLINE(");
  110.             WriteDateiString(Output,CHR(10));
  111.             Counter:=0;
  112.             WHILE NOT Input.eof DO
  113.                ReadChar(Input,a);
  114.                IF Input.eof THEN
  115.                   b:=CHAR(0);
  116.                ELSE
  117.                   ReadChar(Input,b);
  118.                END;
  119.                ValToStr((256*ORD(a)+ORD(b)),FALSE,String,16,5,'0',Error);
  120.                WriteDateiString(Output,String);
  121.                WriteDateiString(Output,'H');
  122.                IF NOT Input.eof THEN
  123.                   WriteDateiString(Output,',');
  124.                END;
  125.                INC(Counter);
  126.                IF Counter>7 THEN
  127.                   Counter:=0;
  128.                   WriteString (".");
  129.                   WriteDateiString(Output,CHR(10));
  130.                END;
  131.             END;
  132.             WriteDateiString(Output,")");
  133.             WriteDateiString(Output,CHR(10));
  134.             WriteDateiString(Output,"END Bild;");
  135.             WriteDateiString(Output,CHR(10));
  136.             WriteDateiString(Output,CHR(10));
  137.             WriteDateiString(Output,"BEGIN");
  138.             WriteDateiString(Output,CHR(10));
  139.             WriteDateiString(Output,"END ");
  140.             WriteDateiString(Output,Inputname);
  141.             WriteDateiString(Output,".");
  142.             WriteDateiString(Output,CHR(10));
  143.             Close(Output);
  144.             WriteLn;
  145.             IF NOT CreateIcon(ADR(Output1),ADR(LImage),
  146.                     ADR(HImage),TRUE,project,ADR(":c/MuchMore")) THEN
  147.                WriteString('Konnte leider kein ICON erstellen ¿?');
  148.                WriteLn;
  149.             END;
  150.             WriteString("Datei erzeugt: ");
  151.             WriteString(Output1);
  152.             WriteLn;
  153.             Lookup(Output,Output2,Buffer2,TRUE);
  154.             IF Output.res=done THEN
  155.                WriteDateiString(Output,"DEFINITION MODULE ");
  156.                WriteDateiString(Output,Inputname);
  157.                WriteDateiString(Output,";");
  158.                WriteDateiString(Output,CHR(10));
  159.                WriteDateiString(Output,CHR(10));
  160.                WriteDateiString(Output,"(*                     Generated with MakeCPic V1.0");
  161.                WriteDateiString(Output,CHR(10));
  162.                WriteDateiString(Output,"     © by Steffen Köhler -- Grüne Str. 1  2880 Brake TEL 04401/70164 *)");
  163.                WriteDateiString(Output,CHR(10));
  164.                WriteDateiString(Output,CHR(10));
  165.                WriteDateiString(Output,"PROCEDURE Bild;");
  166.                WriteDateiString(Output,CHR(10));
  167.                WriteDateiString(Output,CHR(10));
  168.                WriteDateiString(Output,"END ");
  169.                WriteDateiString(Output,Inputname);
  170.                WriteDateiString(Output,".");
  171.                WriteDateiString(Output,CHR(10));
  172.                Close(Output);
  173.                IF NOT CreateIcon(ADR(Output2),ADR(LImage),
  174.                        ADR(HImage),TRUE,project,ADR(":c/MuchMore")) THEN
  175.                   WriteString('Konnte leider kein ICON erstellen ¿?');
  176.                   WriteLn;
  177.                END;
  178.                WriteString("Datei erzeugt: ");
  179.                WriteString(Output2);
  180.                WriteLn;
  181.                WriteString("Fertig...");
  182.                WriteLn;
  183.             ELSE
  184.                WriteString('Ausgabe2 ließ sich nicht öffnen');
  185.                WriteLn;
  186.             END;
  187.          ELSE
  188.             WriteString('Ausgabe1 ließ sich nicht öffnen');
  189.             WriteLn;
  190.          END;
  191.       ELSE
  192.          WriteString('Eingabedatei ließ sich nicht öffnen');
  193.          WriteLn;
  194.          Close(Input);
  195.       END;
  196.    ELSE
  197.       WriteString('                               MakeCPic  1.0');
  198.       WriteLn;
  199.       WriteString('                        Macht Inlines aus CPic- Files');
  200.       WriteLn;
  201.       WriteLn;
  202.       WriteString('   Aufruf : Über die Workbench durch Anklicken des TextIcons und Doppelklick');
  203.       WriteLn;
  204.       WriteString('                          auf das Bild- Icon   oder');
  205.       WriteLn;
  206.       WriteString('              im CLI durch "  MakeCPic Quelldatei <Zieldatei>"');
  207.       WriteLn;
  208.       WriteString('      wobei die Zieldatei, wenn nicht angegeben, auf Quelle + .mod bzw. .def');
  209.       WriteLn;
  210.       WriteString('                               eingestellt ist.');
  211.       WriteLn;
  212.    END;
  213. END MakeCPic.
  214.  
  215.  
  216.